//
//  LSTabBarViewController.swift
//  新浪微博---01次
//
//  Created by 李宗帅 on 16/5/3.
//  Copyright © 2016年 LS. All rights reserved.
//

import UIKit

class LSTabBarViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        //添加所有的子视图控制器
        addChildViewController()
        
        //自定义的TabBar 
        let tabbar = LSTabBar()
        
        //赋值给系统的tabbar
        //因为tabBar是  read-only  只读的话 不能直接赋值 需要用KVC  
        //KVC就是运行时机制 - 运行时的一个机制  程序运行时通过键值对 给对象的属性动态赋值
        //KVC除了能给只读的赋值  还能给私有属性赋值 
        
        setValue(tabbar, forKey: "tabBar")
        
        //setValue(<#T##value: AnyObject?##AnyObject?#>, forKeyPath: <#T##String#>)
        //keyPath  & key的区别
        //keyPath  能够知道到属性的属性赋值 -- tabBar.delegate
        //key 只能给这个属性赋值
        
        //给闭包赋值 
        let closure = {
            
            
            let popView = LSPopView()
            
            popView.show()
            
            popView.target = self

            self.view.addSubview(popView)
            
        }
        
        tabbar.closure = closure

    }
    //重写 ---关键字 override
    //重写一般用于  子类去扩展父类的属性或者方法

    //抽取一个方法,来四线不同的值得赋值
    //相同的方法名,参数个数不同 -- 重载
    func addChildViewController(childController: UIViewController, title:  String,image: String) {
  
        
        //
        childController.title = title
        
        childController.tabBarItem.image = UIImage(named: image)
        
        childController.tabBarItem.selectedImage = UIImage(named: "\(image)_highlighted")
        
        addChildViewController(UINavigationController(rootViewController: childController))
       
    }
    
    //再次对方法重载  其实就是为了让我们在上边可以一句话搞定
    
    func addChildViewController() {
        
        //设置渲染颜色

        
        addChildViewController(LSHomeViewController(), title: "首页", image: "tabbar_home")
        addChildViewController(LSMessageViewController(), title: "消息", image: "tabbar_message_center")
        addChildViewController(LSFindViewController(), title: "发现", image: "tabbar_discover")
        addChildViewController(LSSettingViewController(), title: "设置", image: "tabbar_profile")
        
    }
}
